เป้าหมาย 🎯
- แบบจำลอง: ระบบเครือข่ายสังคมพื้นฐาน
- ผู้ใช้ถูกแทนด้วย จุดยอด ในกราฟ.
- ความสัมพันธ์เพื่อนเป็น เส้นเชื่อมไม่ระบุทิศทาง.
- งานที่ต้องทำ: ประมวลผลชุดคำสั่งเพื่อสร้างและสอบถามเครือข่าย
การแสดงผล 💾
เราจะใช้ รายการติดกัน เพื่อเก็บข้อมูลกราฟ
มันคืออาร์เรย์ของลิสต์ ลิสต์ที่ตำแหน่ง `i` จะเก็บเพื่อนทั้งหมดของผู้ใช้ `i`
// ความสัมพันธ์เพื่อน: (0,1), (0,2), (1,2)
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[],
]
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[],
]
การดำเนินการ ⚙️
คุณจะต้องสร้างคำสั่งสี่อย่าง:
add u vเพิ่มความสัมพันธ์เพื่อน
degree uนับจำนวนเพื่อนของผู้ใช้ u
isfriend u vตรวจสอบว่า u และ v เป็นเพื่อนกันหรือไม่
count_greater xนับจำนวนผู้ใช้ที่มีเพื่อนมากกว่า x คน